<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class GenerateLocalizedDocs extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'docs:generate-zh
                            {--force : 强制重新生成，即使文件已存在}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '生成中文化的API文档';

    /**
     * Execute the console command.
     */
    public function handle()
    {
        $this->info('🚀 开始生成中文化API文档...');

        // 第一步：生成Scribe文档
        $this->info('📝 正在生成Scribe文档...');
        $exitCode = $this->call('scribe:generate');

        if ($exitCode !== 0) {
            $this->error('❌ Scribe文档生成失败');
            return 1;
        }

        // 第二步：应用中文化
        $this->info('🌏 正在应用中文化...');
        $localizationScript = base_path('scripts/localize-scribe.php');

        if (!file_exists($localizationScript)) {
            $this->error("❌ 中文化脚本不存在: {$localizationScript}");
            return 1;
        }

        // 执行中文化脚本
        $output = [];
        $returnCode = 0;
        exec("php {$localizationScript}", $output, $returnCode);

        if ($returnCode !== 0) {
            $this->error('❌ 中文化处理失败');
            return 1;
        }

        // 显示中文化结果
        foreach ($output as $line) {
            $this->line($line);
        }

        $this->info('');
        $this->info('🎉 中文化API文档生成完成！');
        $this->info('📖 访问地址: https://new.sohajob.com/larapress-api/docs/');
        $this->info('');
        $this->info('💡 提示: 每次修改API注释后，运行此命令重新生成文档');

        return 0;
    }
}
